(1) Field of the Invention
The present invention relates to a looping detection apparatus, and more particularly, to a looping detection apparatus for a communications system in which a node transmits a status enquiry message to a remote node and, when a status enquiry message is received from the remote node, sends back a status response message, to thereby confirm whether normal communication status is established with the remote node.
The present invention is applied in particular to a frame-relay communications system and utilizes the PVC (Permanent Virtual Circuit) status confirmation procedure as specified in the recommendations X.76 by the ITU-T (International Telecommunication Union-Telecommunication Sector) to detect looping caused between nodes.
(2) Description of the Related Art
Frame relay is conventionally known as a communications technique capable of achieving high-speed, low-delay communications required for communications between LANs, and at present, there already exist a large number of public and private frame-relay networks. As a protocol (NNI: Network-Network Interface) to be used in such frame-relay networks, the ITU-T recommendations X.76 have been standardized.
According to the ITU-T recommendations X.76, two-way procedure (technique according to which one node carries out both status enquiry and status response) is defined as the PVC status confirmation procedure, and when there has occurred a fault in a trunk line (including a fault of a sending line only and a fault of a receiving line only) of the frame-relay network, error is detected through confirmation of link completeness.
The following is an outline of the link completeness confirmation according to the PVC status confirmation procedure as provided by the ITU-T recommendations X.76.
The PVC status confirmation procedure employs periodic polling to confirm link completeness and to make a notification of PVC status. In the two-way PVC status confirmation procedure, a polling start procedure and a polling response procedure described below are executed by each node.
FIG. 15 is a diagram illustrating the polling start procedure and the polling response procedure. Assuming in FIG. 15 that each node comprises STE (Signaling Terminal Equipment), an SE (Status Enquiry) message for making an enquiry about status and an ST (Status) message, which is a status response to the enquiry message, are exchanged between STEa and STEb.
In the polling start procedure, the STE periodically generates an SE message, transmits the same to a remote STE, and on receiving from the remote STE an ST message responsive to the SE message, performs a receiving process. The SE message is generated at intervals of, for example, 10 seconds, and an SE-F message of which the report type is full status is generated in a ratio of once to six message generations.
In the polling response procedure, on receiving an SE message, the STE generates an ST message responsive to the SE message, and sends the ST message back to that STE which transmitted the SE message. In response to the SE-F message, an ST-F message whose report type is full status is transmitted. If there has been a change in the status of the STE, the STE may transmit an ST-F message in response to an SE message.
In the following, explanation is made basically of the SE message and the ST message, and operations unique to the SE-F message and the ST-F message will be explained separately where appropriate.
The link completeness confirmation is made by using these messages, and to this end, each STE is provided with two storage sections PI and PR. Each of the storage sections PI and PR is configured so as to store sequence numbers V(S) and V(R). Also, each of the SE message and the ST message is formatted such that it has a part for carrying two sequence numbers N(S) and N(R).
When an SE message is transmitted from a local STE, the sequence number N(S) carried by this SE message is copied to the storage section PI of the local STE as the sequence number V(S). Similarly, when an ST message is transmitted from a local STE, the sequence number N(S) carried by this ST message is copied to the storage section PR of the local STE as the sequence number V(S).
When a local STE has received an ST message, the sequence number N(S) carried by this ST message is copied to the storage section PI of the local STE as the sequence number V(R). Further, when this local STE transmits an SE message next time, the sequence number V(R) in the storage section PI is used as the sequence number N(R) to be carried by the SE message. Similarly, when a local STE has received an SE message, the sequence number N(S) carried by this SE message is copied to the storage section PR of the local STE as the sequence number V(R). Further, when this local STE transmits an ST message next time, the sequence number V(R) in the storage section PR is used as the sequence number N(R) to be carried by the ST message.
Explanation will be now made with reference to a specific example shown in FIG. 15.
First, it is assumed that the sequence numbers V(S) and V(R) in the storage section PI of the STEb are set to values a and b, respectively, and that the sequence numbers V(S) and V(R) in the storage section PR of the STEb are set to values x and y, respectively. Thus, the sequence numbers V(S) and V(R) in the storage section PI of the STEa are set to the values y and x, respectively, and the sequence numbers V(S) and V(R) in the storage section PR of the STEa are set to the values b and a, respectively.
When polling timing for the STEb is reached and an SE message is to be transmitted to the STEa, the sequence number V(S) in the storage section PI of the STEb, that is, a, is read out, and a value (a+1), which is the sum of the read value and the value xe2x80x9c1,xe2x80x9d is set as the sequence number N(S) of the SE message. Also, the sequence number V(R) in the storage section PI, that is, b, is read out and set as the sequence number N(R) of the SE message. The SE message having the sequence numbers N(S) and N(R) thus set therein is transmitted to the STEa, and at the same time the sequence number N(S) set in this SE message, that is, (a+1), is copied to the storage section PI of the STEb as the sequence number V(S).
On receiving the SE message, the STEa compares the value of the sequence number N(R) carried by the SE message with the value of the sequence number V(S) in the storage section PR thereof. In the illustrated example, both take the value b, and when the two values coincide in this manner, the STEa judges that there is no abnormality in the channel between the STEa and the STEb. When no abnormality is detected, the value (a+1) of the sequence number N(S) carried by the SE message is set as the sequence number V(R) of the storage section PR. Then, the sequence number V(S) in the storage section PR of the STEa, that is, b, is read out, and a value (b+1), which is the sum of the read value and the value xe2x80x9c1,xe2x80x9d is set as the sequence number N(S) of an ST message. Also, the sequence number V(R) in the storage section PR, that is, a+1, is read out and set as the sequence number N(R) of the ST message. The ST message having the sequence numbers N(S) and N(R) thus set therein is transmitted to the STEb, and at the same time the sequence number N(S) set in this ST message is copied to the storage section PR of the STEa as the sequence number V(S).
If the value of the sequence number N(R) carried by the received SE message is different from the value of the sequence number V(S) in the storage section PR, the STEa judges that the channel between the STEa and the STEb is abnormal. In this case, the value of the sequence number V(S) in the storage section PR is retained as it is, and the value of the sequence number N(S) carried by the SE message is set as the sequence number V(R) of the storage section PR. Further, the sequence number V(S) in the storage section PR of the STEa is read out, and a value obtained by adding the value xe2x80x9c1xe2x80x9d to the read value is set as the sequence number N(S) of an ST message. Also, the sequence number V(R) in the storage section PR is read out and set as the sequence number N(R) of the ST message. The ST message having the sequence numbers N(S) and N(R) thus set therein is transmitted to the STEb, and at the same time the sequence number N(S) set in this ST message is copied to the storage section PR of the STEa as the sequence number V(S).
On receiving the ST message, the STEb compares the value of the sequence number N(R) carried by the ST message with the value of the sequence number V(S) in the storage section PI thereof. In the illustrated example, both take the value (a+1), and when the two values coincide in this manner, the STEb judges that there is no abnormality in the channel between the STEa and the STEb. When no abnormality is detected, the value (b+1) of the sequence number N(S) carried by the ST message is set as the sequence number V(R) of the storage section PI.
If the value of the sequence number N(R) carried by the received ST message differs from the value of the sequence number V(S) in the storage section PI, the STEb judges that the channel between the STEa and the STEb is abnormal. In this case, the ST message is discarded, the sequence numbers V(S) and V(R) in the storage section PI are retained at the same values as before the discard of the ST message, and the STEb waits until polling timing for transmitting the next SE message is reached.
When polling timing for the STEa is reached and an SE message is to be transmitted to the STEb, the sequence number V(S) in the storage section PI of the STEa, that is, y, is read out, and a value (y+1), which is the sum of the read value and the value xe2x80x9c1,xe2x80x9d is set as the sequence number N(S) of the SE message. Also, the sequence number V(R) in the storage section PI, that is, x, is read out and set as the sequence number N(R) of the SE message. The SE message having the sequence numbers N(S) and N(R) thus set therein is transmitted to the STEb, and at the same time the sequence number N(S) set in this SE message, that is, (y+1), is copied to the storage section PI of the STEa as the sequence number V(S).
On receiving the SE message, the STEb compares the value of the sequence number N(R) carried by the SE message with the value of the sequence number V(S) in the storage section PR thereof. In the illustrated example, both take the value x, and when the two values coincide in this manner, the STEb judges that there is no abnormality in the channel between the STEa and the STEb. When no abnormality is detected, the value (y+1) of the sequence number N(S) carried by the SE message is set as the sequence number V(R) of the storage section PR. Then, the sequence number V(S) in the storage section PR of the STEb, that is, x, is read out, and a value (x+1), which is the sum of the read value and the value xe2x80x9c1,xe2x80x9d is set as the sequence number N(S) of an ST message. Also, the sequence number V(R) in the storage section PR, that is, y+1, is read out and set as the sequence number N(R) of the ST message. The ST message having the sequence numbers N(S) and N(R) thus set therein is transmitted to the STEa, and at the same time the sequence number N(S) set in this ST message is copied to the storage section PR of the STEb as the sequence number V(S).
The STEa, on receiving the ST message, compares the value of the sequence number N(R) carried by the ST message with the value of the sequence number V(S) in the storage section PI thereof. In the illustrated example, both take the value (y+1), and when the two values coincide in this manner, the STEa judges that there is no abnormality in the channel between the STEa and the STEb. When no abnormality is detected, the value (x+1) of the sequence number N(S) carried by the ST message is set as the sequence number V(R) of the storage section PI.
Even in the event that the channel between the STEa and the STEb is judged to be abnormal, a final judgment that the channel is abnormal is made only when the abnormality is detected three times in four consecutive confirmations of link completeness, for example, thereby avoiding erroneous judgment.
In cases where a loop is created in the channel between the STEa and the STEb due to an error in working process or the like, however, a problem arises in that, although there is abnormality to be detected, the channel is not finally judged to be abnormal. This will be explained with reference to FIG. 16.
FIG. 16 is a diagram showing a sequence of link completeness confirmations made in the case where a loop is created in the channel between the STEa and the STEb. It is assumed in FIG. 16 that the STEa and the STEb are connected to each other by NNI according to the ITU-T recommendations X.76, and that the STEb and DTEb (Data Terminal Equipment b) are connected to each other by UNI (User Network Interface) according to the ITU-T recommendations X.36.
If a loop is created in the channel between the STEa and the STEb, an SE message [N(S)=a+2; N(R)=b+1] transmitted from the STEb and directed to the STEa, for example, loops back (R1 in FIG. 16) and is received by the STEb as an SE message transmitted from the STEa. The STEb starts the polling response procedure on receiving the SE message, and since the value (b+1) of the sequence number N(R) carried by the SE message is different from the value (x+1) of the sequence number V(S) in the storage section PR, the difference is counted as the first detection of abnormality during the polling response procedure. In this case, the sequence number N(S) of the SE message, that is, a+2, is set as the sequence number V(R) in the storage section PR of the STEb. Then, a value (x+2) obtained by adding the value xe2x80x9c1xe2x80x9d to the value x+1 of the sequence number V(S) in the storage section PR is set as the sequence number N(S) of an ST message, and the value a+2 of the sequence number V(R) in the storage section PR is set as the sequence number N(R) of the ST message, the ST message being transmitted to the STEa (R2 in FIG. 16).
However, this ST message also loops directly back to the STEb (R3 in FIG. 16) and is received by the STEb as an ST message transmitted from the STEa, so that the polling start procedure is initiated. The STEb compares the value of the sequence number N(R) carried by the ST message with the value of the sequence number V(S) in the storage section PI thereof. In the illustrated case, both take the value (a+2), and the STEb judges that there is no abnormality in the channel between the STEa and the STEb, though the polling start procedure should originally make the first detection of abnormality. In FIG. 16, the circle indicates the case where it is judged that there is no abnormality, and the dark circle indicates the case where it is judged that there is abnormality.
When the timing for transmitting an SE message from the STEb is reached thereafter, an SE message [N(S)=a+3; N(R)=x+2] directed to the STEa is transmitted in the polling start procedure. If there still exits a loop, this SE message loops back directly (R4 in FIG. 16) and is received by the STEb as an SE message transmitted from the STEa.
On receiving the SE message, the STEb starts the polling response procedure and compares the value of the sequence number N(R) carried by the SE message with the value of the sequence number V(S) in the storage section PR thereof. In the illustrated case, both take the value (x+2), and therefore, although the polling response procedure should originally make the second detection of abnormality, the STEb judges that there is no abnormality in the channel between the STEa and the STEb.
The STEb thereafter sets the sequence number N(S) of the SE message, that is, a+3, as the sequence number V(R) in the storage section PR thereof. Also, a value (x+3) obtained by adding the value xe2x80x9c1xe2x80x9d to the value x+2 of the sequence number V(S) in the storage section PR is set as the sequence number N(S) of an ST message, and the sequence number V(R) in the storage section PR, that is, a+3, is set as the sequence number N(R) of the ST message, the ST message being transmitted to the STEa (R5 in FIG. 16).
This ST message also loops directly back to the STEb (R6 in FIG. 16) and is received by the STEb as an ST message transmitted from the STEa, so that the polling start procedure is initiated. The STEb compares the value of the sequence number N(R) carried by the ST message with the value of the sequence number V(S) in the storage section PI thereof. In the illustrated case, both take the value (a+3), and the STEb judges that there is no abnormality in the channel between the STEa and the STEb, though the polling start procedure should originally make the second detection of abnormality.
Similarly, in the subsequent polling response and start procedures, abnormality of the channel fails to be detected.
Thus, based on an SE message transmitted from the STEb immediately after the occurrence of looping of the channel, the STEb detects abnormality of the channel in the polling response procedure, but it is judged thereafter that there is no abnormality in the channel, though a loop has occurred in the channel. Consequently, with a method in which a final judgment that there exists abnormality is made only when the abnormality is detected three times in four consecutive confirmations of link completeness in either the polling start or response procedure, it is not possible to detect a channel loop.
Since a loop of the channel between the STEa and the STEb cannot be detected though it actually exists, transmission of a user frame from the DTEb to the STEb cannot be prevented, causing a communication fault (R7 in FIG. 16).
This problem arises not only in the case of frame-relay NNI but also in the case of employing a two-way procedure in frame-relay UNI as the PVC status confirmation procedure.
An object of the present invention is to provide a looping detection apparatus capable of detecting looping without fail through link completeness confirmation according to a two-way PVC status confirmation procedure.
To achieve the above object, there is provided a looping detection apparatus for a communications system in which a node transmits a status enquiry message to a remote node and, when a status enquiry message is received from the remote node, sends back a status response message, to thereby confirm whether normal communication status is established with the remote node. The looping detection apparatus comprises status enquiry message transmitting means provided in a first node, for transmitting a status enquiry message to a second node with a first identification code carried at a predetermined position of a signal by means of which the status enquiry message is transmitted, status response message returning means provided in the second node, for creating a status response message based on the status enquiry message upon receipt of same, and sending the status response message back to the first node with a second identification code carried at the predetermined position in place of the first identification code, and judging means provided in the first node, for checking the code carried at the predetermined position of a signal by means of which a status enquiry message has been transmitted when the status enquiry message is received, and judging that abnormality has occurred in communication status between the second and local nodes if the signal carries the first identification code.
To achieve the above object, there is also provided a looping detection apparatus for a communications system in which a node transmits a status enquiry message to a remote node and, when a status enquiry message is received from the remote node, sends back a status response message, to thereby confirm whether normal communication status is established with the remote node. The looping detection apparatus comprises status enquiry message transmitting means for transmitting a status enquiry message to a remote node with first and second values carried at first and second predetermined positions, respectively, of the status enquiry message, the status enquiry message transmitting means having a first storage section for storing the first and second values and a second storage section for storing third and fourth values, first reading means for reading out the values carried at the first and second predetermined positions of a status enquiry message when the status enquiry message is received, first judging means for comparing the two values read out by the first reading means with corresponding ones of the two values stored in the first storage section and judging that abnormality has occurred in communication status between the remote and local nodes if the former two values coincide with the corresponding ones of the latter two values, first storage instructing means for causing the second storage section to store, as a fifth value in place of the fourth value, the value carried at the first predetermined position of the received status enquiry message when a judgment that abnormality has occurred in the communication status is made by the first judging means, status response message transmitting means for transmitting a status response message to the remote node, the status response message having a third predetermined position carrying a sixth value obtained by adding a value of 1 to the third value stored in the second storage section and a fourth predetermined position carrying the fifth value stored in the second storage section, second storage instructing means for causing the second storage section to store, in place of the third value, the value carried at the third predetermined position of the status response message transmitted by the status response message transmitting means, and third storage instructing means for causing the first storage section to store, in place of the first value, a seventh value obtained by adding a predetermined value to the first value stored therein.